package com.punch.common.vo.course.classes;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;

/**
 * @className: FeignClassVO
 * @description: 远程调用课程信息
 * @author: wujj
 * @date: 2020/12/11 19:10
 **/
@Data
public class FeignClassVO implements Serializable {

    @ApiModelProperty(name = "courseClassId", notes = "班级id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long courseClassId;

    @ApiModelProperty(name = "courseClassName", notes = "班级名称")
    private String courseClassName;

    @ApiModelProperty(name = "type", notes = "0-机构 1-学校")
    private Integer type;

    @ApiModelProperty(name = "courseId", notes = "课程ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long courseId;

    @ApiModelProperty(name = "courseName", notes = "课程名称")
    private String courseName;

    @ApiModelProperty(name = "courseImg", notes = "课程封面")
    private String courseImg;


    @ApiModelProperty(name = "courseCreateId", notes = "课程创建者id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long courseCreateId;

    @ApiModelProperty(name = "courseCreateName", notes = "课程创建者姓名")
    private String courseCreateName;


    @ApiModelProperty(name = "courseHourCount", notes = "课时数")
    private Integer courseHourCount;

    @ApiModelProperty(name = "courseHourAmount", notes = "课时单价：单位分")
    private Integer courseHourPrice;

    @ApiModelProperty(name = "classOpenDate", notes = "开班日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate classOpenDate;


    @ApiModelProperty(name = "teacherName", notes = "教师名称")
    private String teacherName;


    @ApiModelProperty(name = "classRoomName", notes = "教室")
    private String classRoomName;

    @ApiModelProperty(name = "courseTime", notes = "上课时间")
    private String courseTime;



    @ApiModelProperty(name = "material", notes = "教材教具")
    private AppGoodsVO material;

    @ApiModelProperty(name = "buyFlag", notes = "是否必须购买,只有material不为空的时候有意义")
    private Integer buyFlag;

    /**
     * 课程适用年级名称  1-6年级多选
     */
    @ApiModelProperty(name = "courseGrade", notes = "课程适用年级名称  1-6年级多选,用于验证")
    private String courseGrade;

    /**
     * 课程适用年级名称  1-6年级多选
     */
    @ApiModelProperty(name = "courseGrade", notes = "课程适用年级名称  1-6年级多选")
    private String courseGradeName;


    /**
     *上课周几,用于计算
     */
    private String courseWeek;

    /**
     * 上课时间,用于计算
     */
    private String classTime;
}
